Dinaao-1.0, first release version.
Coded from scratch by John Gilbert.
Runs on Linux, MacOSX, and Solaris.
Should work under any UNIX-like os.
Copyright 2008.

Files:
	Makefile, dinaao.c and input.c are needed to create dinaao


	On MacOSX and Linux, just type make, then run dinaao. On Solaris you might want to
	tweak the Makefile to use the Sun Studio compilers.

	roms.txt describes the *.bin files used by dinaao. Currently source edits in dinaao.c
	to switch initial memory configuration. Also right now they have to be in the current
	directory.

	gpl.txt is the license which gives YOU rights to the code.

	bintomon.c, hello.c and mc65 are the source and build tools to create cc65 hello,
		see bug01.txt

Dinaao is not an apple one. It features:
	Runs in console so copy and paste works both ways.
	It runs as fast as possible until blocking on an input character
	(currently coded as a table in source, perhaps in the future from a config file).
	When waiting for input (most of the time), it uses no CPU time at all.
	All 64K is RAM including where roms are loaded. You can overwrite everything if you want.
		This might change in the future if there's a good reason.
	Coded from scratch in C for correctness (not quite yet), clarity and speed.

The Real Deal:
	If you want a real Apple1, please build yourself a real Replica1, Vince Briel has
	designed a great platform for running Apple1 programs on almost the real thing. You
	might want to get two so you can have one with stock roms and a 6502 CPU, and another
	with Krusader 1.3+ and a 65C02 for debugging.
	
	http://www.brielcomputers.com/replica1.html

License:
	GPLv3 and JSF
	You're free to use this and re-distribute this software under the terms of
	the GPLv3 license. I don't want you to lock it down with a key (like Tivo), I don't
	want anyone to pay M$ for the code I wrote, I don't want to get blamed if this code
	causes you to loose your hair, girlfriend, job, etc.

	If you would like to thank me for writing such a great program, please send small bills,
	check, or money order to...

	John's Steinway Fund
	John Gilbert
	999 Brannan St.
	San Francisco, CA 94103

Runtime Commands:
	Note: on MacOSX you need to disable F7-F12 hotkeys for now.
	F1 = help
	F9 = quit
	F12 = reset
	F2 = toggle trace level. level 1 is cpu flags, level 2 shows instructions and arguments
	F8 = toggle pause mode
	F5 = will turn on pause mode if it's off and run one instruction
	F7 = toggles ascii color mode, colors currently set in source

Possible future additions:
	Finish 65C02 instructions. BCD mode code.
	Fix cc65 to avoid WozMonitor zero page variables and other bugs.
	CFFA1 emulation. Required for the future apple1-adventure project.
	Memory save and restore functions. CPU state on pause.
	Show next command, not just last one. Instruction recording?
	Code coverage, dissassembler, memory visualizer.
	6502 Stepping controller, sends commands to real Replica1 to check emulation accuracy.
	On the fly CPU switching, 65C02/6502 full/6502 lite (aborts on non compatible opcodes).
	Multi CPU emulation? 
	GT-6144 emulation, or other outboard frame buffer for graphics. Points, lines, OpenGL?.
	Non-console mode for that blinking @ goodness. 
	Sound?
	IRQ and WAIt.

Design goals and issues:
	I wrote this from scratch to be able to understand how the Apple1/Replica1/65C02 works.
	I'd like to get the CPU emulation spot on to the 65C02, and eventually also the older
	6502. I'm using dinaao as a developement platform along with the Replica1 so any
	features I add will probably target these needs.

	I've spoken with Woz about why the original Apple1 was so broken. The answer is that
	it was originally designed as a TV teletype. Adding a CPU, ROM and RAM was almost
	an afterthought (one that changed computing forever), brought apon by the availabilty
	of inexpensive microprocossers, i.e. the 6502. There were limits of 60 characters
	a second of input or output, and 1MHz CPU clock on the original Apple1. These limits
	are ignored in dinaao. If you want to-the-clock emulation, try Pom1 or MESS.

	Currently IO is trapped at key instructions. As there is only a handfull of IO points this
	isn't a problem, but it can break running new programs or loading new monitor roms.
	If it's an instrumented instruction, it will just spin wait for input and take up all
	available CPU cycles (like all other emulators I know of out there currently).
	If a program gets too creative, it could endlessly loop, though it's easy to catch
 	with the pause and trace but requires a recompile to fix.

	It looks like port 0xD013 might not quite handled right. I modeled this off an early
	Replica1 SE but it looks like there is some new-line magic on the real thing. It
	might only be used this way at the start of the Woz monitor.

Bugs:
	Many, but it's too useful and fun now to not release.

Contact:
	Please send a message to jgilbert on the applefritters site if you find any issues
	you want to help fix.

Thanks to:
	Woz.
	Vince.
	Ken.
	Rich.
